#ifndef BITBOARD_MOVELIST_H
#define BITBOARD_MOVELIST_H

#include "bitboard.h"

typedef struct {
	unsigned int from : 6;
	unsigned int to : 6;
	unsigned int moving_piece : 3;
	unsigned int captured_piece : 3;
	unsigned int new_piece : 3;
	unsigned int : 0;
} move_t;

bitboard get_attacks_to(board_t *b, int sq, int color);
bitboard get_attacks_from(board_t *b, int sq, int piece, int color);
int find_all_attacks(board_t *b, move_t *move_list, int pawn_move, bitboard target, int color);
int get_capture_list(board_t *b, move_t *move_list, int color);
int get_move_list(board_t *b, move_t *move_list, int color);
int move_piece(board_t *b, move_t m, int color);


#endif

